/*
 * MapModel.hpp
 *
 *  Created on: 11.10.2013
 *      Author: dima
 */

#ifndef MAPMODEL_HPP_
#define MAPMODEL_HPP_


#include "GameObjectModel.hpp"

#include <map>


namespace Tanks
{

namespace Model
{

  class MapModel
  {
  public:

    void AddGameObject(GameObjectModel * argGameObject, int argType)
    { m_gameObjects.insert(std::pair<GameObjectModel *, int>(argGameObject, argType)); }

    void RemoveGameObject(GameObjectModel * argGameObject);

    std::map<GameObjectModel *, int>::iterator Begin(){ return m_gameObjects.begin(); }
    std::map<GameObjectModel *, int>::iterator End(){ return m_gameObjects.end(); }

    int GetNumberOfObjects() const { return m_gameObjects.size(); }

  private:

    std::map<GameObjectModel *, int> m_gameObjects;

  };

}

}


#endif /* MAPMODEL_HPP_ */
